package org.hotpotmaterial.code.utils;

import java.util.HashMap;
import java.util.Map;

import org.springframework.util.StringUtils;

import java.lang.reflect.Field;

public class ObjectTurnMapUtils {
public static Map<String,String> objectToMap(Object requestParameters) throws IllegalAccessException {
        Map<String, String> map = new HashMap<>();
        // 获取f对象对应类中的所有属性域
        Field[] fields = requestParameters.getClass().getDeclaredFields();
        for (int i = 0, len = fields.length; i < len; i++) {
            String varName = fields[i].getName();
                // 获取原来的访问控制权限
			boolean accessFlag = fields[i].isAccessible();
                // 修改访问控制权限
                fields[i].setAccessible(true);
                // 获取在对象f中属性fields[i]对应的对象中的变量
                Object o = fields[i].get(requestParameters);
                if (o != null &&!StringUtils.isEmpty(o.toString())) {
                    map.put(varName, o.toString());
                    // 恢复访问控制权限
                    fields[i].setAccessible(accessFlag);
                }
        }
        return map;
    }
}
